package com.aidex.biz.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.aidex.common.utils.log.annotation.FieldRemark;
import com.aidex.common.utils.log.annotation.LogField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.aidex.common.annotation.Excel;
import com.aidex.common.core.domain.BaseEntity;

/**
 * 费用管理对象 biz_jinjian_bill
 *
 * @author sean
 * @email 2074844820@qq.com
 * @date 2023-12-17
 */
@Data
public class JinjianBill extends BaseEntity<JinjianBill> {
    private static final long serialVersionUID = 1L;


    /**
     * 进件编号
     */
    @Excel(name = "进件编号")
    private String jinjianId;

    /**
     * 提交收入金额
     */
    @Excel(name = "提交收入金额")
    private BigDecimal serviceAmount;

    /**
     * 提交支出金额
     */
    @Excel(name = "提交支出金额")
    private BigDecimal payAmount;

    /**
     * 确认收入金额
     */
    @Excel(name = "确认收入金额")
    private BigDecimal serviceAmountCheck;

    /**
     * 确认支出金额
     */
    @Excel(name = "确认支出金额")
    private BigDecimal payAmountCheck;

    /**
     * 是否作废
     */
    @Excel(name = "是否作废", dictType = "is_zuofei_status")
    private String isZuofei;

    /**
     * 财务确认
     */
    @Excel(name = "财务确认", dictType = "caiwu_check_status")
    private String caiwuCheck;

    /**
     * 确认时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "确认时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkTime;

    /**
     * 确认时间开始
     */
    private String beginCheckTime;

    /**
     * 确认时间结束
     */
    private String endCheckTime;
    /**
     * 客户姓名
     */
    @Excel(name = "客户姓名")
    private String cusName;

    /**
     * 客服姓名
     */
    @Excel(name = "客服姓名")
    private String serviceName;

    /**
     * 客服ID
     */
    private String serviceId;

    /**
     * 客户ID
     */
    private String customerId;

    /**
     * 签单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date qdTime;

    /**
     * 签单时间开始
     */
    private String beginQdTime;

    /**
     * 签单时间结束
     */
    private String endQdTime;
    /**
     * 放款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "放款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date fkTime;

    /**
     * 放款时间开始
     */
    private String beginFkTime;

    /**
     * 放款时间结束
     */
    private String endFkTime;
    /**
     * 申请金额
     */
    @Excel(name = "申请金额")
    private BigDecimal sqAmount;

    /**
     * 放款金额
     */
    @Excel(name = "放款金额")
    private BigDecimal fkAmount;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 结单状态（0待结单 1 结单）
     */
    @Excel(name = "结单状态", dictType = "jiedan_status")
    private String status;

    private String orgType;
    private String productId;

    /**
     * 确认回款金额
     */
    private BigDecimal serviceConfirmAmount;
    /**
     * 钥匙费
     */
    private BigDecimal serviceKeyAmount;

    /**
     * 保险费
     */
    private BigDecimal serviceInsuranceAmount;

    /**
     * 谈单费
     */
    private BigDecimal serviceDealAmount;

    /**
     * 客服签单费
     */
    private BigDecimal serviceSignAmount;

    /**
     * 装gps费
     */
    private BigDecimal serviceGpsAmount;

    /**
     * 抵押费
     */
    private BigDecimal serviceDiyaAmount;

    /**
     * 垫资费
     */
    private BigDecimal servicePayAmount;

    /**
     * 解压费
     */
    private BigDecimal serviceJieyaAmount;

    /**
     * 其他费
     */
    private BigDecimal serviceOtherAmount;

    public String getJinjianId() {
        return jinjianId;
    }

    public void setJinjianId(String jinjianId) {
        this.jinjianId = jinjianId;
    }

    public BigDecimal getServiceAmount() {
        return serviceAmount;
    }

    public void setServiceAmount(BigDecimal serviceAmount) {
        this.serviceAmount = serviceAmount;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public BigDecimal getServiceAmountCheck() {
        return serviceAmountCheck;
    }

    public void setServiceAmountCheck(BigDecimal serviceAmountCheck) {
        this.serviceAmountCheck = serviceAmountCheck;
    }

    public BigDecimal getPayAmountCheck() {
        return payAmountCheck;
    }

    public void setPayAmountCheck(BigDecimal payAmountCheck) {
        this.payAmountCheck = payAmountCheck;
    }

    public String getIsZuofei() {
        return isZuofei;
    }

    public void setIsZuofei(String isZuofei) {
        this.isZuofei = isZuofei;
    }

    public String getCaiwuCheck() {
        return caiwuCheck;
    }

    public void setCaiwuCheck(String caiwuCheck) {
        this.caiwuCheck = caiwuCheck;
    }

    public Date getCheckTime() {
        return checkTime;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }

    public String getCusName() {
        return cusName;
    }

    public void setCusName(String cusName) {
        this.cusName = cusName;
    }

    public String getServiceName() {
        return serviceName;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    public String getServiceId() {
        return serviceId;
    }

    public void setServiceId(String serviceId) {
        this.serviceId = serviceId;
    }

    public String getCustomerId() {
        return customerId;
    }

    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    public Date getQdTime() {
        return qdTime;
    }

    public void setQdTime(Date qdTime) {
        this.qdTime = qdTime;
    }

    public Date getFkTime() {
        return fkTime;
    }

    public void setFkTime(Date fkTime) {
        this.fkTime = fkTime;
    }

    public BigDecimal getSqAmount() {
        return sqAmount;
    }

    public void setSqAmount(BigDecimal sqAmount) {
        this.sqAmount = sqAmount;
    }

    public BigDecimal getFkAmount() {
        return fkAmount;
    }

    public void setFkAmount(BigDecimal fkAmount) {
        this.fkAmount = fkAmount;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("userId", getUserId())
                .append("deptId", getDeptId())
                .append("userName", getUserName())
                .append("deptName", getDeptName())
                .append("companyId", getCompanyId())
                .append("jinjianId", getJinjianId())
                .append("serviceAmount", getServiceAmount())
                .append("payAmount", getPayAmount())
                .append("serviceAmountCheck", getServiceAmountCheck())
                .append("payAmountCheck", getPayAmountCheck())
                .append("isZuofei", getIsZuofei())
                .append("caiwuCheck", getCaiwuCheck())
                .append("checkTime", getCheckTime())
                .append("cusName", getCusName())
                .append("serviceName", getServiceName())
                .append("serviceId", getServiceId())
                .append("customerId", getCustomerId())
                .append("qdTime", getQdTime())
                .append("fkTime", getFkTime())
                .append("sqAmount", getSqAmount())
                .append("fkAmount", getFkAmount())
                .append("sort", getSort())
                .append("status", getStatus())
                .append("remark", getRemark())
                .append("id", getId())
                .append("createBy", getCreateBy())
                .append("createDept", getCreateDept())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("updateIp", getUpdateIp())
                .append("version", getVersion())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
